package com.numberone.iotplatform.service;

import com.numberone.iotplatform.dto.ScanStatus; // 引入ScanStatus DTO

import java.util.concurrent.CompletableFuture;

/**
 * 设备扫描服务的接口定义。
 * 负责处理启动和管理设备发现扫描任务。
 */
public interface DeviceScanService {

    /**
     * 异步启动一个设备扫描任务。
     * 该方法会立即返回，并在后台线程中执行扫描逻辑。
     *
     * @param taskId   唯一的任务ID，用于后续追踪
     * @param ipRange  要扫描的IP地址范围，格式如 "192.168.1.1-254"
     * @param port     要扫描的设备端口
     * @param username 用于尝试登录的用户名
     * @param password 用于尝试登录的密码
     * @return 一个 CompletableFuture 对象，表示异步任务的完成状态 (当前实现中不关注其返回值)
     */
    CompletableFuture<String> startScan(String taskId, String ipRange, int port, String username, String password);

    /**
     * 获取指定任务ID的当前扫描状态。
     * @param taskId 任务ID
     * @return 扫描状态对象 ScanStatus，如果任务不存在则返回 null
     */
    ScanStatus getScanStatus(String taskId);
}